Cameras can be used to capture a sequence of images to be used as frames of video data. Cameras may be fixed to stable objects, for example a camera may be mounted on a stand such as a tripod to thereby keep the camera still while the video frames are captured. However, often cameras may be incorporated in mobile devices and are not necessarily mounted to fixed objects, for example a camera may be held, or may be on a moving object such as a vehicle or bicycle. Movement of the camera while the camera is capturing frames of video data may result in movement in the video itself, which is highly undesirable and difficult to watch.
Image stabilization is a method that can be used to compensate for the unwanted movement in video data. Some systems perform motion estimation in order generate motion vectors for use by an image stabilization process. Image stabilization algorithms may consist of three main parts: motion estimation, motion smoothing, and motion compensation. A motion estimation block may estimate local motion vectors within the video signal and on the basis of these local estimates calculate a global motion vector. A motion smoothing block may then deal with filtering of the estimated global motion vector in order to smooth the calculated value and prevent large and undesirable differences between motion vectors calculated previously. A motion compensation block may then shift an image in the opposite direction to the filtered global motion vector to thereby stabilize the video signal. However, these video stabilization methods require a large of amount of processing power.
In recent years, motion sensors have become simpler and cheaper to manufacture and the size of motion sensors has reduced significantly. It is now feasible to implement motion sensors in mobile devices. Motion sensors generate data representing the motion of the sensor.
Therefore, there exists a need for an improved video stabilization method and system that can incorporate the use of motion sensors and also feature analysis.